package com.sgb.kjwl.model.api;

import com.sgb.kjwl.model.entity.AllFunction;
import com.sgb.kjwl.model.entity.CarInfo;
import com.sgb.kjwl.model.entity.DriverInfo;
import com.sgb.kjwl.model.entity.DriverTrailInfo;
import com.sgb.kjwl.model.entity.GoodsOrderEntity;
import com.swgk.core.view.entity.MenuEntity;
import com.swgk.core.base.model.entity.H5ReEntity;
import com.sgb.kjwl.model.entity.MyCarInfoEntity;
import com.sgb.kjwl.model.entity.OfferOrderUpEntity;
import com.sgb.kjwl.model.entity.ProListEntity;
import com.sgb.kjwl.model.entity.UserMsgEntity;
import com.sgb.kjwl.model.entity.pricecheck.SupplierEntitiy;
import com.sgb.kjwl.model.entity.self.CarListEntity;
import com.sgb.kjwl.model.entity.self.CarriageInfoPublishEntity;
import com.swgk.core.view.entity.DriverAuthDetailEntity;
import com.sgb.kjwl.model.entity.self.GoodsMangeResultEntity;
import com.sgb.kjwl.model.entity.self.GoodsSelectEntity;
import com.sgb.kjwl.model.entity.self.GoodsSourceDetail;
import com.sgb.kjwl.model.entity.self.HistoryOfferEntity;
import com.sgb.kjwl.model.entity.self.JudgeDriverAuthEntity;
import com.sgb.kjwl.model.entity.self.LicenceOCREntity;
import com.sgb.kjwl.model.entity.self.MyOfferDetailsEntity;
import com.sgb.kjwl.model.entity.self.MyOfferEntity;
import com.sgb.kjwl.model.entity.self.MyOfferEntity2;
import com.sgb.kjwl.model.entity.self.SubSetEntity;
import com.sgb.kjwl.model.entity.self.UserAccount;
import com.sgb.kjwl.model.entity.self.VehicleLicenseInfo;
import com.sgb.kjwl.model.entity.transport.AgreedCarOfferEntity;
import com.sgb.kjwl.model.entity.transport.CarHallEntity;
import com.sgb.kjwl.model.entity.transport.CarTypeAndCarLength;
import com.sgb.kjwl.model.entity.transport.CargoDistanceEntity;
import com.sgb.kjwl.model.entity.transport.CargoEntity;
import com.sgb.kjwl.model.entity.transport.CarriageInfo;
import com.sgb.kjwl.model.entity.transport.CarrierBusinessEntity;
import com.sgb.kjwl.model.entity.transport.CarrierDetailsEntity;
import com.sgb.kjwl.model.entity.transport.CarrierListResultEntity;
import com.sgb.kjwl.model.entity.transport.CarrierPushCarrierEntity;
import com.sgb.kjwl.model.entity.transport.CarsInfoDetailEntity3;
import com.sgb.kjwl.model.entity.transport.CarsSourcesEntiity;
import com.sgb.kjwl.model.entity.transport.CheckStateEntity;
import com.sgb.kjwl.model.entity.transport.CompanyInvoiceEntity;
import com.sgb.kjwl.model.entity.transport.DriverLocationVo;
import com.sgb.kjwl.model.entity.transport.DriverVerifyEntity;
import com.sgb.kjwl.model.entity.transport.DriverWorkbenchEntity;
import com.sgb.kjwl.model.entity.transport.EnquiryDtailEntity;
import com.sgb.kjwl.model.entity.transport.GoodsInfoDetailEntity3;
import com.sgb.kjwl.model.entity.transport.GoodsInfoEntity;
import com.sgb.kjwl.model.entity.transport.GoodsInfoTypeEntity3;
import com.sgb.kjwl.model.entity.transport.GoodsSourceDetailEntity3;
import com.sgb.kjwl.model.entity.transport.GoodsSourceItemEntity;
import com.sgb.kjwl.model.entity.transport.GoodsSourceManageListEntity3;
import com.sgb.kjwl.model.entity.transport.GoodsSourcesEntity;
import com.sgb.kjwl.model.entity.transport.InquiryEntity;
import com.sgb.kjwl.model.entity.transport.InquiryRseultEntity;
import com.sgb.kjwl.model.entity.transport.InvoiceRateEntity;
import com.sgb.kjwl.model.entity.transport.MapCarBiddingEntity;
import com.sgb.kjwl.model.entity.transport.MapCarEntity;
import com.sgb.kjwl.model.entity.transport.MapCarsSourcesEntity;
import com.sgb.kjwl.model.entity.transport.MapChatEntity;
import com.sgb.kjwl.model.entity.transport.MapGoodsBiddingEntity;
import com.sgb.kjwl.model.entity.transport.MapLongAndLatEntity;
import com.sgb.kjwl.model.entity.transport.MapSourcesEntity;
import com.sgb.kjwl.model.entity.transport.OfferResultEntity;
import com.sgb.kjwl.model.entity.transport.OwnerCarriageDetail;
import com.sgb.kjwl.model.entity.transport.OwnerGoodsDetailInfo;
import com.sgb.kjwl.model.entity.transport.OwnerWorkbenchEntity;
import com.sgb.kjwl.model.entity.transport.PayInfoEntity;
import com.sgb.kjwl.model.entity.transport.SearchGoodsEntity;
import com.sgb.kjwl.model.entity.transport.SureStartTransportEntity;
import com.sgb.kjwl.model.entity.transport.TransportOrderEntity;
import com.sgb.kjwl.model.entity.transport.VehicleDetail;
import com.sgb.kjwl.model.entity.transport.VehicleHallMapEntity;
import com.sgb.kjwl.model.entity.transport.order.MyOrderEntity;
import com.swgk.core.view.entity.PermissionEntity;
import com.swgk.core.base.model.entity.ListResponse;
import com.sgb.kjwl.view.ui.activity.transport.OperateEnquiryDetail;
import com.swgk.core.base.model.entity.BaseEntity;

import java.util.List;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;

public interface DriverAPI {

    //货物类型
    @POST("v1/app/user/logistics/goodsType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getGoodsInfoType(@Query("type") String type);

    //货车类型
    @POST("v1/app/user/logistics/carType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getCarType(@Query("type") String type);

    //货车长度
    @POST("v1/app/user/logistics/carLenType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getCarLenType(@Query("type") String type);

    //运输方式
    @POST("v1/app/user/logistics/transType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getTransType();

    //装卸方式
    @POST("v1/app/user/logistics/handleType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getHandleType();

    //付款方式
    @POST("v1/app/user/logistics/payType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getPayType();

    //发票方式
    @POST("v1/app/user/logistics/invoiceType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getInvoiceType();


    //货运大厅-货运列表
    @POST("logistics/app/goodsSourceHall")
    Call<BaseEntity<ProListEntity<List<GoodsInfoEntity>>>> getFilterGoodsSourceHall(@Body Map map);

    //货运大厅-货运列表
    @POST("logistics/app/competeFindGoods")
    Call<BaseEntity<ProListEntity<List<GoodsInfoEntity>>>> getCompeteFindGoods(@Body Map map);


    //货运大厅-校验货源是否有效
    @POST("logistics/app/goodsSourceStatusCheck")
    Call<BaseEntity<CheckStateEntity>> goodsSourceStatusCheck(@Body Map map);

    //货运大厅-货运列表
    @POST("logistics/app/carTypeByGoodsType")
    Call<BaseEntity<List<CarTypeAndCarLength>>> getCarTypeAndCarLengthList(@Query("goodsTypeNo") String goodsTypeNo);

    //货运大厅-货运列表
    @POST("logistics/my/appGoodsSourcelist")
    Call<BaseEntity<GoodsMangeResultEntity>> getGoodsManageList(@Body Map map);


    //删除货源
    @POST("logistics/my/appGoodsSourceDel")
    Call<BaseEntity<String>> deleteGoods(@Query("goodsSourceId") String goodsSourceId);


    //货源上下架
    @POST("logistics/my/appDownGoodsSource")
    Call<BaseEntity> upAndDownGoods(@Query("no") String no);

    //货源详情
    @FormUrlEncoded
    @POST("v1/app/logistics/detail")
    Call<BaseEntity<GoodsInfoDetailEntity3>> getGoodsSourceDetail(@Field("areaCode") String code, @Field("no") String id);

    //车辆详情
    @FormUrlEncoded
    @POST("v1/app/logistics/driverDetail")
    Call<BaseEntity<CarsInfoDetailEntity3>> getCardSourceDetail(@Field("areaCode") String code, @Field("no") String id);


    //货源管理列表
    @POST("v1/app/user/logistics/goodsList")
    Call<BaseEntity<GoodsSourceManageListEntity3>> getGoodsSourceManageList(@Body Map map);

    //搜索页--找货列表
    @FormUrlEncoded
    @POST("v1/app/logistics/goodsSearch")
    Call<BaseEntity<GoodsSourceItemEntity>> getSearchSourceList(@Field("text") String tv);

    //找货--条件筛选列表
    @POST("v1/app/logistics/goodsSourceList")
    Call<BaseEntity<ProListEntity<List<GoodsSourcesEntity>>>> getFilterSourceList(@Body Map map);

    //找车--条件筛选列表
    @POST("v1/app/logistics/searchCarList")
    Call<BaseEntity<ProListEntity<List<CarsSourcesEntiity>>>> getCarFilterSourceList(@Body Map map);

    //首页--顶部--菜单
    @FormUrlEncoded
    @POST("v1/app/logistics/menuList")
    Call<BaseEntity<List<MenuEntity>>> getMenuList(@Field("type") String code);

    //首页--最新货源
    @POST("logistics/app/newestGoods")
    Call<BaseEntity<List<GoodsSourcesEntity>>> getNewSourceList(@Query("lng") String lng, @Query("lat") String lat);

    //首页--车主列表
    @POST("logistics/app/nearDrivers")
    Call<BaseEntity<List<CarsSourcesEntiity>>> getCarsList(@Query("lng") String lng, @Query("lat") String lat);

    //货源删除
    @FormUrlEncoded
    @POST("v1/app/user/logistics/deleteGoods")
    Call<BaseEntity<Object>> deleteGoodsManage(@Field("id") String id);

    //货源发布
    @POST("v1/app/user/logistics/goodsPublish")
    Call<BaseEntity<Object>> getGoodsSourcePublic(@Body GoodsSourceDetailEntity3 entity);

    //获取地址经纬度
    @POST("v1/app/logistics/getAddressCoordinate")
    Call<BaseEntity<MapLongAndLatEntity>> getLocationLL(@Query("areaCode") String areaCode, @Query("provinceNo") String provinceNo, @Query("cityNo") String cityNo, @Query("districtNo") String districtNo);

    //半径范围
    @GET("v1/app/logistics/getRadiusType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getRadiusList();

    //地图找货
    @GET("v1/app/logistics/getGoodsSourceMapSearch")
    Call<BaseEntity<List<MapSourcesEntity>>> getMapSourcesList(@Query("areaCode") String addr, @Query("lng") String lng, @Query("lat") String lat, @Query("distance") String distance);

    //地图找车
    @GET("v1/app/logistics/getDriverSourceMapSearch")
    Call<BaseEntity<List<MapCarsSourcesEntity>>> getMapCarsSourcesList(@Query("areaCode") String addr, @Query("lng") String lng, @Query("lat") String lat, @Query("distance") String distance);

    //竞价找货--承运信息弹窗
    @POST("v1/app/logistics/findCarrierList")
    Call<BaseEntity<ProListEntity<List<MapCarBiddingEntity>>>> getMapCarList(@Body Map map);

    //竞价找货--推送承运信息弹窗
    @POST("v1/app/logistics/pushCarrier")
    Call<BaseEntity> pushMapCarList(@Body MapCarBiddingEntity carriageInfoPublishEntity);

    //竞价找车--货源信息弹窗
    @POST("v1/app/logistics/getMyGoodsSourceList")
    Call<BaseEntity<ProListEntity<List<MapGoodsBiddingEntity>>>> getMapGoodsList(@Body Map map);

    //竞价找车--推送货源信息弹窗
    @POST("v1/app/logistics/goodsSourcePublish")
    Call<BaseEntity> pushMapGoodsList(@Body MapGoodsBiddingEntity carriageInfoPublishEntity);

    //地图找货--货源商机
    @POST("v1/app/logistics/getGoodsBusiness")
    Call<BaseEntity<ProListEntity<List<MapSourcesEntity>>>> getNewMapGoodsBusList(@Body Map map);

    //地图找货--沟通
    @GET("v1/app/logistics/getimAccountByTelePhone")
    Call<BaseEntity<MapChatEntity>> getNewMapChatList(@Query("telephone") String tel);

    //地图找车--承运商机
    @POST("v1/app/logistics/getCarrierBusiness")
    Call<BaseEntity<ProListEntity<List<MapCarsSourcesEntity>>>> getNewMapCarBusList(@Body Map map);

    //地图找货--新
    @POST("logistics/app/visualFindGoods")
    Call<BaseEntity<List<MapSourcesEntity>>> getNewMapGoodsSourcesList(@Body Map map);

    //地图找车--新
    @POST("v1/app/logistics/getDriverSourceMapSearch")
    Call<BaseEntity<List<MapCarsSourcesEntity>>> getNewMapCarsSourcesList(@Body Map map);


    // 司机认证-编辑、保存
    @POST("v1/app/user/logistics/driverAuth")
    Call<BaseEntity<Object>> getDriverAuth(@Body DriverVerifyEntity entity);

    // 获取车辆详情driverAuthNo
    @POST("logistics/app/vehicleDetails")
    Call<BaseEntity<VehicleDetail>> getFindCarVehicleDetail(@Query("driverAuthNo") String driverAuthNo);

    // 司机认证-详情
    @POST("v1/app/user/logistics/driverAuthDetail")
    Call<BaseEntity<DriverAuthDetailEntity>> driverAuthDetail();

    // 司机认证-判断是否
    @POST("v1/app/user/logistics/judgeDriverAuth")
    Call<BaseEntity<JudgeDriverAuthEntity>> judgeDriverAuth();


    //报价
    @POST("v1/app/logistics/order/goodsOffer")
    Call<BaseEntity> goodsOffer(@Body OfferOrderUpEntity offerOrderUpEntity);

    //下单
    @POST("v1/app/logistics/order/driverOrder")
    Call<BaseEntity> driverOffer(@Body OfferOrderUpEntity offerOrderUpEntity);


    /*// 司机认证-编辑、保存
    @POST("v1/app/user/logistics/driverAuth")
    Call<BaseEntity<Object>> driverAuth(@Body DriverVerifyEntity entity);

    //商机订阅-列表 OK
    @POST("v1/app/user/logistics/businessList")
    @FormUrlEncoded
    Call<BaseEntity<GoodsItemEntity>> businessList(@Field("pageNum") String pageNum, @Field("pageSize") String pageSize);

    //常跑路线设置
    @POST("v1/app/user/logistics/routeSetting")
    @FormUrlEncoded
    Call<BaseEntity<Object>> routeSetting(@FieldMap Map<String, Object> map);

    //承运信息列表 OK
    @POST("v1/app/user/logistics/carrierList")
    @FormUrlEncoded
    Call<BaseEntity<TransItemEntity>> carrierList(@Field("pageNum") String pageNum, @Field("pageSize") String pageSize);


    // 报价 新增
    @POST("v1/app/user/logistics/offerSave")
    Call<BaseEntity<Object>> offerSave(@Body PriceNewEntity entity);

    //报价订单 OK
    @POST("v1/app/user/logistics/offerList")
    Call<BaseEntity<List<PriceItemEntity>>> offerList();



    //订阅设置-保存、编辑
    @POST("v1/app/user/logistics/subSetting")
    Call<BaseEntity<Object>> subSetting(@Body SubSettingFullEntity entity);*/


    //推送承运信息添加
    @POST("v1/app/user/logistics/carrierPushCarrier")
    Call<BaseEntity<Object>> saveCarrierPushCarrierData(@Body CarrierPushCarrierEntity entity);

    //推送承运信息详情
    @FormUrlEncoded
    @POST("v1/app/logistics/carrierDetail")
    Call<BaseEntity<CarrierDetailsEntity>> getCarrierDetail(@Field("no") String no, @Field("areaCode") String code);

    //推送承运需求列表
    @POST("v1/app/logistics/carrierSearch")
    Call<BaseEntity<ProListEntity<List<CarrierListResultEntity>>>> getCarrierFilterSourceList(@Body Map map);

    @POST("v1/app/logistics/carrierSearch")
    Call<BaseEntity<ProListEntity<List<CarsSourcesEntiity>>>> getCarrierFilterSourceList2(@Body Map map);

    //新地图竞价找车
    @POST("logistics/app/biddingFindCars")
    Call<BaseEntity<ProListEntity<List<CarriageInfo>>>> getFilterMapCarList(@Body Map map);

    @POST("logistics/app/biddingFindCarsMaps")
    Call<BaseEntity<List<MapCarEntity>>> getMapFindCar(@Body Map map);

    //推送承运需求列表详情H5
    @FormUrlEncoded
    @POST("v1/app/common/getUrlSetting")
    Call<BaseEntity<H5ReEntity>> getUrlSetting(@Field("param") String param);

    //运货要求
    @POST("v1/app/user/goods/enquiry/getDeliveryRequire")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getDeliverDemand();

    //装车方式
    @POST("v1/app/user/goods/enquiry/getLoadingRequire")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getLoadDemand();

    //卸车方式
    @POST("v1/app/user/goods/enquiry/getUnloadRequire")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getUnLoadDemand();

    //询价方式
    @POST("v1/app/user/goods/enquiry/getEnquiryType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getPriceCheckDemand();

    //会员询价
    @POST("v1/app/user/goods/enquiry/getSupplierMember")
    Call<BaseEntity<List<SupplierEntitiy>>> getSupplierMember();

    //支付方式
    @POST("v1/app/user/goods/enquiry/getPayWay")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getPayWay();

    //轨迹上传
    @POST("v1/app/logistics/order/saveDriverTrail")
    Call<BaseEntity> saveDriverTrail(@Body DriverTrailInfo entity);

    //订单运输轨迹查询  2.0.5新增
    @FormUrlEncoded
    @POST("v1/app/logistics/order/orderTrail")
    Call<BaseEntity<List<DriverLocationVo>>> getOrderTrail(@Field("orderNo") String no);

    //司机认证
    @POST("logistics/my/driverApprove")
    Call<BaseEntity> authDriver(@Body Map map);

    //司机认证
    @POST("logistics/my/driverOcrReturn")
    Call<BaseEntity<LicenceOCREntity>> getOCRLicenceInfo(@Body Map map);

    //司机详情
    @POST("v1/app/logistics/detailOfDriver")
    Call<BaseEntity<DriverInfo>> getDriverInfo();

    //用户车辆信息
    @POST("v1/app/logistics/order/selectCars")
    Call<BaseEntity<List<CarInfo>>> getCarInfo();

    //车辆管理列表
    @POST("logistics/my/vehicleManagementList")
    Call<BaseEntity<List<CarListEntity>>> getCarList();

    //车辆详情
    @FormUrlEncoded
    @POST("v1/app/logistics/carDetail")
    Call<BaseEntity<MyCarInfoEntity>> getCarDetail(@Field("no") long no);

    //大厅普通、竞价货源详情
    @POST("logistics/app/goodsSourceDetail")
    Call<BaseEntity<OwnerGoodsDetailInfo>> getSourceDetail(@Query("no") String no);

    //货主普通、竞价货源详情
    @POST("logistics/my/appGoodsSourceDetail")
    Call<BaseEntity<OwnerGoodsDetailInfo>> getManagerSourceDetail(@Query("goodsSourceNo") String goodsSourceNo);

    //获取车辆列表
    @POST("logistics/app/vehicleHallList")
    Call<BaseEntity<ProListEntity<List<CarHallEntity>>>> getCarList(@Body Map<String, Object> map);

    //获取车辆列表
    @POST("logistics/app/vehicleHallList")
    Call<BaseEntity<ProListEntity<List<VehicleHallMapEntity>>>> getCarHallList(@Body Map<String, Object> map);

    //地图找车车辆列表
    @POST("logistics/app/visualFindCars")
    Call<BaseEntity<List<MapCarEntity>>> getCarListByMap(@Body Map<String, Object> map);


    //车辆大厅地图找车列表
    @POST("logistics/app/operateVehicleHallMaps")
    Call<BaseEntity<List<VehicleHallMapEntity>>> getCarFormMap(@Body Map<String, Object> map);

    //获取车型车长
    @POST("logistics/app/carTypeByGoodsType")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getCarTypeAndLen(@Query("goodsTypeNo") String goodsTypeNo);

    //承运信息详情
    @POST("logistics/app/carriageDetails")
    Call<BaseEntity<OwnerCarriageDetail>> getCarriageDetail(@Query("carrierNo") String carrierNo);

    //2.0.4新增  用于发票要求字段是否修改校验
    @POST("logistics/app/carriageDetails")
    Call<BaseEntity<CarriageInfoPublishEntity>> getShipperDetail(@Query("carrierNo") String carrierNo);

    @POST("logistics/app/carriageDetails")
    Call<BaseEntity<CarriageInfoPublishEntity>> getOwnerCarriageDetail(@Query("carrierNo") String carrierNo);

    //更多承运信息
    @POST("logistics/app/moreShippingInfo")
    Call<BaseEntity<ListResponse<List<CarrierDetailsEntity>>>> getCarriageList(
            @Query("userNo") String userNo, @Query("driverAuthNo") String driverAuthNo,
            @Query("page") String page, @Query("limit") String limit);

    //用户物流权限
    @POST("logistics/app/getPermissions")
    Call<BaseEntity<UserMsgEntity>> getPermissions();

    //用户物流权限
    @POST("logistics/app/getPermissions")
    Call<BaseEntity<PermissionEntity>> getLogisticsPermissions();

    //司机角色-车辆详情
    @POST("logistics/my/jingDriverDetail")
    Call<BaseEntity<MyCarInfoEntity>> getJingDriverDetail(@Query("no") long no);

    //司机角色车辆详情-编辑
    @POST("logistics/my/editHurdleHeightAndDumper")
    Call<BaseEntity> editHurdleHeightAndDumper(@QueryMap Map<String, Object> map);

    //上传行驶证
    @Multipart
    @POST("logistics/my/uploadWalkPermits")
    Call<BaseEntity<VehicleLicenseInfo>> uploadWalkPermit(@PartMap Map<String, RequestBody> files, @Query("isMainWalkPermit") int isMainWalkPermit);//1代表正面  0代表反面

    //包装方式
    @POST("logistics/my/packingModes")
    Call<BaseEntity<List<GoodsSelectEntity>>> getPackingModes();

    //发布货源计算距离
    @POST("logistics/my/calculateDistance")
    Call<BaseEntity<CargoDistanceEntity>> calculateDistance(@Body Map<String, Object> map);

    //查询历史货源
    @POST("logistics/my/appHistoryGoodsSource")
    Call<BaseEntity<ListResponse<List<CargoEntity>>>> getHistoryCargo(@QueryMap Map<String, Object> map);

    //货源详情
    @POST("logistics/my/appGoodsSourceDetail")
    Call<BaseEntity<CargoEntity>> getCargoDetail(@Query("goodsSourceNo") String goodsSourceNo);

    //发布货源
    @POST("logistics/my/appSaveOrUpdate")
    Call<BaseEntity> releaseCargo(@Body Map<String, Object> map);

    //我的报价列表（车主）
    @POST("v1/app/user/logistics/myOfferOrder")
    Call<BaseEntity<ListResponse<List<MyOfferEntity>>>> getMyOfferOrder(@Body Map<String, Object> map);

    //我的报价列表（车主）    2.0.3
    @POST("logistics/my/operateOffList")
    Call<BaseEntity<ListResponse<List<MyOfferEntity2>>>> getMyOfferList(@Body Map<String, Object> map);

    //我的报价详情（车主）    2.0.3
    @POST("logistics/my/operateQuoteOwnerDetail")
    Call<BaseEntity<MyOfferDetailsEntity>> getOfferDetails(@Body Map<String, Object> map);

    //我的历史报价（车主）
    @POST("logistics/my/operateHistoryOff")
    Call<BaseEntity<ListResponse<List<HistoryOfferEntity>>>> getMyOfferHistoryList(@Body Map<String, Object> map);

    //检查车辆的可使用状态
    @POST("logistics/my/agreedCarOffer")
    Call<BaseEntity<AgreedCarOfferEntity>> checkCarStatues(@Body Map map);


    //搜索货物
    @POST("v2/app/index/searchByKeyword")
    Call<BaseEntity<ProListEntity<List<SearchGoodsEntity>>>> getSearchList(@Body Map map);

    //获取公司发票列表
    @POST("logistics/my/getInvoicingInfo")
    Call<BaseEntity<List<CompanyInvoiceEntity>>> getCompanyInvoiceList(@Body Map<String, Object> map);

    //获取发票列表信息
    @POST("logistics/my/invoiceSpliceList")
    Call<BaseEntity<List<InvoiceRateEntity>>> getInvoiceListInfo(@Body Map<String, Object> map);

    //获取个人发票列表
    @POST("logistics/my/findByCompanyName")
    Call<BaseEntity<List<CompanyInvoiceEntity>>> getPersonInvoiceList();

    //货源详情
    @POST("logistics/my/appGoodsSourceDetail")
    Call<BaseEntity<GoodsSourceDetail>> getGoodsSourceDetail(@Query("goodsSourceNo") String goodsSourceNo);

    //车辆更多
    @POST("logistics/app/allFunction")
    Call<BaseEntity<List<AllFunction>>> getCarFuncation();

    //获取车辆功能
    @POST("logistics/app/allFunction")
    Call<BaseEntity<List<GoodsInfoTypeEntity3>>> getCarFunction();

    //询价详情
    @POST("v1/app/user/goods/enquiry/enquiryDtail")
    Call<BaseEntity<EnquiryDtailEntity>> enquiryDtail(@Query("no") String goodsSourceNo);

    //新接单
    @POST("logistics/my/operateOrderTaking")
    Call<BaseEntity<PayInfoEntity>> getOrderTaking(@Body GoodsOrderEntity goodsOrderEntity);

    //获取运输订单详情
    @POST("logistics/my/operateShippingOrderDetail")
    Call<BaseEntity<TransportOrderEntity>> getShippingOrderDetail(@Body Map map);

    //确认发车
    @POST("logistics/my/operateStart")
    Call<BaseEntity<SureStartTransportEntity>> sureStartTransport(@Body Map map);

    //确认送达
    @POST("logistics/my/operateEnd")
    Call<BaseEntity<SureStartTransportEntity>> sureArrived(@Body Map map);

    //确认订单
    @POST("logistics/my/operateConfirmOrder")
    Call<BaseEntity<TransportOrderEntity>> sureOrder(@Body Map map);

    //支付运费
    @POST("logistics/my/operatePayFreight")
    Call<BaseEntity<PayInfoEntity>> payFreight(@Body Map map);

    //获取订单车主列表
    @POST("logistics/my/operateCarOwnerShippingOrder")
    Call<BaseEntity<ListResponse<List<MyOrderEntity>>>> getGoodsDriverOrder(@Body Map map);

    //获取订单货主列表
    @POST("logistics/my/operateGoodsOwnerShippingOrder")
    Call<BaseEntity<ListResponse<List<MyOrderEntity>>>> getGoodsOwnerOrder(@Body Map map);

    //获取订单货主列表---个人中心代办订单--物流订单
    //获取订单货主列表
    @Headers("tokenType:pc")
    @GET
    Call<BaseEntity<ListResponse<List<MyOrderEntity>>>> getTransOwnerOrder(@Url String url, @Query("limit") int limit, @Query("page") int page);

    //判断货源货主开通资金账户
    @POST("logistics/my/confirmFundAccount")
    Call<BaseEntity<UserAccount>> confirmFundAccount(@Body Map map);

    //判断用户第一次接单支付
    @POST("logistics/my/confirmFirstPay")
    Call<BaseEntity<UserAccount>> isFirstPay();

    //商机订阅-设置
    @POST("logistics/my/operateGoodsSubscriptionDetail")
    Call<BaseEntity<SubSetEntity>> findMySub(@Body Map<String, Object> map);

    //商机订阅-保存、编辑
    @POST("logistics/my/operateSetGoodsSubscription")
    Call<BaseEntity> saveSub(@Body SubSetEntity entity);

    //车辆询价
    @POST("logistics/app/vehicleInquiry")
    Call<BaseEntity<InquiryRseultEntity>> inquiryCar(@Body Map<String, Object> map);

    //承运询价
    @POST("logistics/app/carrierInquiry")
    Call<BaseEntity<InquiryRseultEntity>> inquiryCarrier(@Body Map<String, Object> map);

    //报价
    @POST("logistics/app/goodsOffer")
    Call<BaseEntity<OfferResultEntity>> goodsOffer(@Body GoodsOrderEntity goodsOrderEntity);

    @POST("logistics/my/operateEnquiryList")
    Call<BaseEntity<ListResponse<List<InquiryEntity>>>> getoperateEnquiryList(@Body Map map);

    @POST("logistics/my/operateMyInquiryList")
    Call<BaseEntity<ListResponse<List<InquiryEntity>>>> getoperateMyInquiryList(@Body Map map);

    @POST("logistics/my/operateEnquiryDetail")
    Call<BaseEntity<OperateEnquiryDetail>> getoperateEnquiryDetail(@Body Map map);

    @POST("logistics/my/operateMyInquiryDetails")
    Call<BaseEntity<OperateEnquiryDetail>> getoperateMyInquiryDetails(@Body Map map);

    @POST("logistics/my/operateCarrierBusinessList")
    Call<BaseEntity<CarrierBusinessEntity>> getoperateCarrierBusinessList(@Body Map map);

    //司机工作台
    @POST("logistics/operate/index/driverWorkbench")
    Call<BaseEntity<DriverWorkbenchEntity>> driverWorkbench();

    //货主工作台
    @POST("logistics/operate/index/shipperWorkbench")
    Call<BaseEntity<OwnerWorkbenchEntity>> ownerWorkbench();
    //物流函询提交
    @POST("logistics/my/sendInquiry")
    Call<BaseEntity> saveEnquiry(@Body Map<String,Object> map);

    //订单送达在线支付短信通知
    @POST("logistics/my/onlinePaymentAdvice")
    Call<BaseEntity> onLinePay(@Body Map<String,Object> map);
}
